package br.pucrio.inf.tamdera;

import java.util.Arrays;
import java.util.List;


public class Constants {

	public static final String DEPENDENCY_TYPE_CANNOT = "cannot";
	
	public static final String DEPENDENCY_TYPE_MUST = "must";
	
	public static final String DEPENDENCY_TYPE_CAN = "can";
	
	public static final String DEPENDENCY_TYPE_ONLY_CAN = "onlycan";
	
	
	
	public static final String DEPENDENCY_RELATION_USES = "uses";
	
	public static final String DEPENDENCY_RELATION_INHERITS = "inherits";
	
	public static final String DEPENDENCY_RELATION_DECLARES = "declares";
	
	public static final String DEPENDENCY_RELATION_INVOKES = "invokes";
	
	public static final String DEPENDENCY_RELATION_CREATES = "creates";
	
	public static final String DEPENDENCY_RELATION_DEPENDS = "depends";

	public static final String UTILS_ALL_CLASSES = "all_classes"; 
	
	
	public static final String RESULT_QUERY_SOURCE = "SOURCE";

	public static final String RESULT_QUERY_TARGET = "TARGET";
	
	public static final String RESULT_QUERY_FIELD = "FIELD";
	
	public static final String RESULT_QUERY_METHOD = "METHOD";
	
	public static final String RESULT_QUERY_METHOD_NAME = "METHOD_NAME";
	
	public static final String RESULT_QUERY_METHOD_SIGNATURE = "METHOD_SIGNATURE";
	
	public static final String RESULT_QUERY_INVOKED_METHOD_SIGNATURE = "INVOKED_METHOD_SIGNATURE";
	
	public static final String RESULT_QUERY_INVOKED_METHOD_NAME = "INVOKED_METHOD_NAME";
	
	public static final String RESULT_QUERY_CLASSNAME = "CLASSNAME";
	
	public static final String RESULT_QUERY_MEASURE = "MEASURE";
	
	public static final String RESULT_QUERY_PACKAGE = "PACKAGE";
	
	public static final String RESULT_QUERY_SUBCLASS = "SUBCLASS";
	
	
	
	public static final List<String> DEFAULT_RESULTS = Arrays.asList( RESULT_QUERY_SOURCE, RESULT_QUERY_TARGET );
	
	public static final List<String> DECLARE_RESULTS = Arrays.asList( RESULT_QUERY_SOURCE, RESULT_QUERY_TARGET, RESULT_QUERY_FIELD );
	
	public static final List<String> CREATES_RESULTS = Arrays.asList( RESULT_QUERY_SOURCE, RESULT_QUERY_TARGET, RESULT_QUERY_METHOD, RESULT_QUERY_METHOD_SIGNATURE);
	
	public static final List<String> INVOKES_RESULTS = 
			Arrays.asList( RESULT_QUERY_SOURCE, RESULT_QUERY_TARGET, 
				RESULT_QUERY_METHOD_NAME, RESULT_QUERY_METHOD_SIGNATURE, RESULT_QUERY_INVOKED_METHOD_NAME,
				RESULT_QUERY_INVOKED_METHOD_SIGNATURE);
	
	public static final List<String> MUST_RESULTS = Arrays.asList( RESULT_QUERY_SOURCE );
	
	public static final List<String> METRICS = Arrays.asList("LOC", "CBO", "AC", "CR", "HDiff", "HEff", "NOA", "NOO", "CM");
	
	
	public static final String OPERATOR_LESS_THAN = "less_than";
	
	public static final String OPERATOR_GREATER_THAN = "greater_than";
	
	public static final String OPERATOR_EQUAL = "equal";
	
	public static final String OPERATOR_NOT_EQUAL = "not_equal";

	public static final String OPERATOR_LESS_OR_EQUAL = "less_or_equal";
	
	public static final String OPERATOR_GREATER_OR_EQUAL = "greater_or_equal";

	public static final String DRIFT_HEADER = "opus";
	
	
	
}
